<?php
def("amicitia/persistencia/daos/","ConexionBD");

abstract class Transaccion {
	
	private $conexion;
	private static $instancia;
	
	public static function getTransaccion(){
		if (!isset(self::$instancia)) {
			$claseTransaccion = conf("transaccional","transaccion","clase");
			$rutaTransaccion = conf("transaccional","transaccion","ruta");
			def($rutaTransaccion,$claseTransaccion);
			self::$instancia = new $claseTransaccion();
		}
		return self::$instancia;
	}
	
	protected function iniciar() {
		$this->conexion = ConexionBD::getConexionBD();
		$this->conexion->conectar();
	}
	
	public function finalizar() {
		if(isset($this->conexion)){
			$this->conexion->concretar();
			$this->conexion->desconectar();
		}
	}
	
	public function truncar() {
		if(isset($this->conexion)){
			$this->conexion->deshacer();
			$this->conexion->desconectar();
		}
	}
	
	public abstract function analizar($recurso);
	
}
?>